#!/bin/bash
# 设置错误处理和调试
set -e
set -x

# 打印当前工作目录和环境信息
echo "🔍 当前工作目录: $(pwd)"
echo "🖥️ 主机信息: $(uname -a)"

# 检查参数数量
if [ $# -lt 2 ]; then
    echo "❌ 错误：缺少参数"
    echo "用法: $0 <应用名称> <环境>"
    exit 1
fi

APP_NAME=$1
ENV=$2

# 如果$1为NodeServer, 则单独执行/sh/server.sh
if [ "$APP_NAME" == "NodeServer" ]; then
    echo "🚀 正在部署 NodeServer..."
    if [ -f ./sh/server.sh ]; then
        sh ./sh/server.sh
    else
        echo "❌ 错误：./sh/server.sh 不存在"
        exit 1
    fi
    exit 0
fi

# 部署前端项目
echo "🔧 正在安装依赖..."
pnpm install || {
    echo "❌ 依赖安装失败"
    exit 1
}


echo "🏗️ 正在构建 $APP_NAME 应用. 环境为 $ENV"
pnpm --filter=./apps/$APP_NAME run build --mode $ENV || {
    echo "❌ 构建失败"
    exit 1
}

# 定义源目录和目标目录
SOURCE_DIR="./apps/$APP_NAME/dist"
TARGET_DIR="/www/$APP_NAME/latest"

echo "🚀 开始部署到 $TARGET_DIR..."
echo "📂 产物目录: $SOURCE_DIR"

# 检查源目录是否存在且非空
if [ ! -d "$SOURCE_DIR" ] || [ -z "$(ls -A "$SOURCE_DIR")" ]; then
    echo "📂 产物目录不存在，正在创建: $SOURCE_DIR"
    mkdir -p "$SOURCE_DIR"
    echo "$SOURCE_DIR 文件创建成功"
fi


# 确保目标目录存在
mkdir -p "$TARGET_DIR"

# 清空目标目录
rm -rf "$TARGET_DIR"/*

# 复制文件到目标目录
echo "🔄 正在同步文件..."
cp -r "$SOURCE_DIR"/* "$TARGET_DIR"/ || {
    echo "❌ 文件复制失败"
    exit 1
}

# 打印部署成功信息
echo "✅ 部署成功！已部署到 $TARGET_DIR"

exit 0